/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ia.tpfinal.moacofinal;

/**
 *
 * @author Christian Gomez
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        String parametros = new String(new char[100]); // indica el archivo de parametros a utilizar
        MOACO alg; // instancia del algoritmo
        Problem prob; // instancia del problema a resolver
        String cad = new String(new char[300]);
        String pr = new String(new char[60]);

        String[][] arrayArchivoProblema = {{"KROAB100.TSP.TXT", "kroac100.tsp.txt"}};
        String ruta = "src/ia/tpfinal/files/tsp/";
        String subRuta = "generado";
        String archivoParametros = "parametros_tsp.txt";
        String[] arrayAlgoritmoEjecucion = {"M3AS"}; //Valores: M3AS
        String problemaEjecucion = "TSP"; //Valores: TSP
        String algoritmoEjecucion; //Valores: M3AS
        String archivoProblema;
        algoritmoEjecucion = arrayAlgoritmoEjecucion[0];
        for (int m = 0; m < 2; m++) { //recorrer array de ArchivoProblema

            parametros = ruta + archivoParametros;
            pr = arrayArchivoProblema[0][m]; // 0=TSP
            archivoProblema = pr;
            System.out.println();
            System.out.println("*********Ejecutandose con los sgtes parametros*********");
            System.out.println();
            System.out.println("archivoProblema = " + archivoProblema);
            System.out.println("ruta = " + ruta);
            System.out.println("archivoParametros = " + archivoParametros);
            System.out.println("algoritmoEjecucion = " + algoritmoEjecucion);
            System.out.println("problemaEjecucion = " + problemaEjecucion);
            System.out.println();

            cad = ruta + subRuta + pr + "-" + algoritmoEjecucion + ".txt";
            String cadenaYtrue = ruta + subRuta + "YTRUE-" + pr + ".txt";
            // Ejecutar el algoritmo indicado
            System.out.println("Ejecutando... ");

            for (int i = 0; i < 10; i++) {
                System.out.println(" " + i);

                if (problemaEjecucion.compareTo("TSP") == 0) {
                    prob = new TSP(ruta + archivoProblema);
                    alg = new M3AS(prob, parametros);
                    alg.ejecutarTSP();
                    alg.pareto.agregarSoluciones(prob, cad); //Generar los frentes del MOACS
                    alg.pareto.agregarSoluciones(prob, cadenaYtrue); //Generar los frentes de todos los algoritmos

                }
            }
            System.out.println("Pareto Generado: " + cad);
            System.out.println("Pareto Ytrue Generado: " + cadenaYtrue);
            System.out.println("Ejecución Finalizada...");

        }
    }
}
